'use strict';

const BaseService = require('./base');

class GameService extends BaseService {

    /**
     * 查找一个游戏信息
     * @param {*} appId 
     */
    async findOneGame(appId) {
        return new Promise(async (reslove, reject) => {
            await this.ctx.model.Game.findOne({
                appId
            }, (err, res) => {
                if (err) {
                    reject(err);
                } else {
                    reslove(res);
                }
            });
        });
    }

    /**
     * 添加一个游戏
     * @param {*} gameInfo 
     */
    async addGame(gameInfo) {
        return new Promise(async (reslove, reject) => {
            let model = new this.ctx.model.Game(gameInfo);
            await model.save((err, res) => {
                if (err) {
                    reject(err);
                } else {
                    reslove(res);
                }
            });
        });
    }

    /**
     * 更新游戏信息
     * @param {*} appId 
     * @param {*} newDoc 
     */
    async updateGameMsg(appId, newDoc) {
        return new Promise(async (reslove, reject) => {
            await this.ctx.model.Game.updateOne({
                appId
            }, newDoc, null, (err, res) => {
                if (err) {
                    reject(err);
                } else {
                    reslove(res);
                }
            });
        });
    }
}

module.exports = GameService;
